# !/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
@作者 杨阳
@时间 2018-06-01
@说明 字符串工具类
@注意事项
"""
import hashlib
import pickle
import uuid


def encode_md5(src):
    """
    将传入字符串进行md5加密
    :param src: 要加密的字符串
    :return: 加蜜后字符串
    """
    md5 = hashlib.md5()
    md5.update(src.encode("UTF-8"))
    return md5.hexdigest()


def trim(str):
    """
    去掉字符串两边的空格
    :param str:     字符串
    :return:        去掉两边空格后的字符串
    """
    value = str.lstrip().rstrip()
    return value


def to_lower(str):
    """
    字母转小写
    :param str:     要转换小写的字符串
    :return:        小定字符串
    """
    return str.lower()


def get_uuid():
    """
    生成uuid
    :return:
    """
    return str(uuid.uuid4())


def change_none_to_empty_string(str):
    """
    如果传入字符串是None，那么转换为空字符串，否则原样返回
    :param str:
    :return:
    """
    if str is None:
        return ''
    else:
        return str


if __name__ == '__main__':
    # print(str(encode_md5("password")))
    # print(trim("           123123123               "))
    # print(to_lower("qweqwe   QWEQWEQWE"))
    # print("UUID:{}".format(get_uuid()))
    #
    # filename = "234.123.jpg";
    # print(filename[filename.rfind(".") + 1:])
    # print("uuid:{}".format(uuid.uuid4()))

    zijie = b'\x80\x04\x95\xe6\x03\x00\x00\x00\x00\x00\x00}\x94(\x8c\x07version\x94K\x01\x8c\x02id\x94\x8c$5e814d09-e619-4c95-aa19-1d85c5e92bae\x94\x8c\x04func\x94\x8c"util.SchedulerUtil:scheduler_print\x94\x8c\x07trigger\x94\x8c\x19apscheduler.triggers.cron\x94\x8c\x0bCronTrigger\x94\x93\x94)\x81\x94}\x94(h\x01K\x02\x8c\x08timezone\x94\x8c\x04pytz\x94\x8c\x04_UTC\x94\x93\x94)R\x94\x8c\nstart_date\x94N\x8c\x08end_date\x94N\x8c\x06fields\x94]\x94(\x8c apscheduler.triggers.cron.fields\x94\x8c\tBaseField\x94\x93\x94)\x81\x94}\x94(\x8c\x04name\x94\x8c\x04year\x94\x8c\nis_default\x94\x88\x8c\x0bexpressions\x94]\x94\x8c%apscheduler.triggers.cron.expressions\x94\x8c\rAllExpression\x94\x93\x94)\x81\x94}\x94\x8c\x04step\x94Nsbaubh\x15\x8c\nMonthField\x94\x93\x94)\x81\x94}\x94(h\x1a\x8c\x05month\x94h\x1c\x88h\x1d]\x94h!)\x81\x94}\x94h$Nsbaubh\x15\x8c\x0fDayOfMonthField\x94\x93\x94)\x81\x94}\x94(h\x1a\x8c\x03day\x94h\x1c\x88h\x1d]\x94h!)\x81\x94}\x94h$Nsbaubh\x15\x8c\tWeekField\x94\x93\x94)\x81\x94}\x94(h\x1a\x8c\x04week\x94h\x1c\x88h\x1d]\x94h!)\x81\x94}\x94h$Nsbaubh\x15\x8c\x0eDayOfWeekField\x94\x93\x94)\x81\x94}\x94(h\x1a\x8c\x0bday_of_week\x94h\x1c\x88h\x1d]\x94h!)\x81\x94}\x94h$Nsbaubh\x17)\x81\x94}\x94(h\x1a\x8c\x04hour\x94h\x1c\x89h\x1d]\x94h!)\x81\x94}\x94h$Nsbaubh\x17)\x81\x94}\x94(h\x1a\x8c\x06minute\x94h\x1c\x89h\x1d]\x94h\x1f\x8c\x0fRangeExpression\x94\x93\x94)\x81\x94}\x94(h$N\x8c\x05first\x94K1\x8c\x04last\x94K1ubaubh\x17)\x81\x94}\x94(h\x1a\x8c\x06second\x94h\x1c\x88h\x1d]\x94hP)\x81\x94}\x94(h$NhSK\x00hTK\x00ubaube\x8c\x06jitter\x94Nub\x8c\x08executor\x94\x8c\x07default\x94\x8c\x04args\x94)\x8c\x06kwargs\x94}\x94h\x1a\x8c\x0fscheduler_print\x94\x8c\x12misfire_grace_time\x94K\x01\x8c\x08coalesce\x94\x89\x8c\rmax_instances\x94K\x03\x8c\rnext_run_time\x94\x8c\x08datetime\x94\x8c\x08datetime\x94\x93\x94C\n\x07\xe2\x08\x07\x071\x00\x00\x00\x00\x94h\x10\x86\x94R\x94u.'
    print(pickle.loads(zijie))
